// SPU管理模块的接口
import request from "@/utils/request"
import type { SkuInfoResponseData, SkuData, HasSpuResponseData, AllTradeMarkResponseData, SpuHasImgResponseData, SpuSaleAttrResponseData, AllSaleAttrResponseData, SpuData } from './type'

enum API {
   // 获取已有的SPU数据的接口
   HASSPU_URL = '/admin/product/',
   // 获取全部品牌的数据的接口
   ALLTRADEMARK_URL = '/admin/product/baseTrademark/getTrademarkList',
   // 获取某个SPU下的全部的售卖商品图片的数据的接口
   IMAGE_URL = '/admin/product/spuImageList/',
   // 获取某个SPU下的全部的销售属性的接口
   SPUHASSALEATTR_URL = '/admin/product/spuSaleAttrList/',
   // 获取整个项目全部的销售属性的接口
   ALLSALEATTR_URL = '/admin/product/baseSaleAttrList',
   // 添加一个SPU的接口
   ADDSPU_URL = '/admin/product/saveSpuInfo',
   // 修改已有的SPU的接口
   UPDATESPU_URL = '/admin/product/updateSpuInfo',
   // 追加一个新增的SKU地址
   ADDSKU_URL = '/admin/product/saveSkuInfo',
   // 查看某一已有SPU下的SKU
   SKUINFO_URL = '/admin/product/findBySpuId/',
   // 删除已有的SPU
   REMOVESPU_URL = '/admin/product/deleteSpu/'
}

// 获取某一个三级分类下已有的SPU数据的方法
export const reqHasSpu = (page: number, limit: number, category3Id: number | string) => request.get<any, HasSpuResponseData>(API.HASSPU_URL + `${page}/${limit}?category3Id=${category3Id}`)
// 获取全部SPU品牌的数据的方法
export const reqAllTradeMark = () => request.get<any, AllTradeMarkResponseData>(API.ALLTRADEMARK_URL)
// 获取某一个SPU下的全部商品图片的地址的方法
export const reqSpuImageList = (spuId: number) => request.get<any, SpuHasImgResponseData>(API.IMAGE_URL + spuId)
// 获取某一个SPU下的全部已有销售属性的方法
export const reqSpuHasSaleAttr = (spuId: number) => request.get<any, SpuSaleAttrResponseData>(API.SPUHASSALEATTR_URL + spuId)
// 获取SPU下的全部销售属性的方法
export const reqAllSaleAttr = () => request.get<any, AllSaleAttrResponseData>(API.ALLSALEATTR_URL)
// 添加一个新的SPU的方法
// 修改已有的SPU的方法
export const reqAddOrUpdateSpu = (data: SpuData) => {
   if (data.id) {
      // 调用修改SPU的接口
      return request.post<any, any>(API.UPDATESPU_URL, data)
   } else {
      // 调用添加SPU的接口
      return request.post<any, any>(API.ADDSPU_URL, data)
   }
}
// 添加一个SKU的方法
export const reqAddsku = (data: SkuData) => request.post<any, any>(API.ADDSKU_URL, data)
// 获取sku的数据
export const reqSkuInfo = (spuId: number | string) => request.get<any, SkuInfoResponseData>(API.SKUINFO_URL + spuId)
// 删除已有的spu
export const reqRemoveSpu = (spuId: number | string) => request.delete<any, any>(API.REMOVESPU_URL + spuId)